package com.tungse.study.chat;


import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

/**
 * @author Tungse
 * BIO模式下的端口转发思想  -  服务端实现
 * <p>
 * 服务端实现的需求
 * 1. 注册端口
 * 2. 接收客户端的socket链接， 并交给一个独立的线程处理
 * 3. 把接收的客户端socket链接存入一个在线集合中
 * 4. 接收客户端的小时， 然后推送给所有的在线客户端
 */
public class ServerChat {

    public static final List<Socket> ALL_ONLINE_SOCKETS = new ArrayList<>();

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(9999);
            while (true) {
                Socket socket = serverSocket.accept();
                ALL_ONLINE_SOCKETS.add(socket);
                new ServerChatReaderThread(socket).start();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }
}
